`nom-tracable` is an extension of [nom](https://docs.rs/nom) to trace parser.
## Examples
The following example show a quick example.
```
use nom::branch::*;
use nom::character::complete::*;
use nom::IResult;
use nom_locate::LocatedSpanEx;
use nom_tracable::{tracable_parser, TracableInfo};
// Input type must implement trait Tracable
// nom_locate::LocatedSpanEx implements it.
type Span<'a> = LocatedSpanEx<&'a str, TracableInfo>;
// Apply tracable_parser by custom attribute
#[tracable_parser]
pub fn term(s: Span) -> IResult {
let (s, x) = char('1')(s)?;
Ok((s, x.to_string()))
}
#[test]
fn test() {
// Configure trace setting
let info = TracableInfo::new().forward(true).backward(true);
let ret = term(LocatedSpanEx::new_extra("1", info));
assert_eq!("\"1\"", format!("{:?}", ret.unwrap().1));
}
```